//#include<stdio.h>
//#include<stdlib.h>
//struct S
//{
//	int n;
//	int arr[];
//};
//int main()
//{
//	struct S* ps = (struct S*)malloc(sizeof(struct S) + 20 * sizeof(int));
//	if (ps == NULL) {
//		perror("malloc()");
//		return 1;
//	}
//	ps->n = 100;
//	for (int i = 0; i < 20; i++)
//	{
//		ps->arr[i] = i + 1;
//	}
//	struct S* ptr = (struct S*)realloc(ps, sizeof(struct S) + 40 * sizeof(int));
//	if (ptr != NULL) {
//		ps = ptr;
//		ptr = NULL;
//	}
//	else {
//		return 1;
//	}
//	for (int i = 0; i < 40; i++)
//	{
//		printf("%x ", ps->arr[i]);
//	}
//	free(ps);
//	ps = NULL;
//	return 0;
//}

//#include<stdio.h>
//#include<stdlib.h>
//struct S
//{
//	int n;
//	int* arr;
//};
//int main()
//{
//	struct S* ps = (struct S*)malloc(sizeof(struct S));
//	ps->arr = (int*)malloc(20 * sizeof(int));
//	for (int i = 0; i < 20; i++) {
//		ps->arr[i] = i + 1;
//	}
//	int* tmp = (int*)realloc(ps->arr, 40 * sizeof(int));
//	if (tmp != NULL) {
//		ps->arr = tmp;
//	}
//	else {
//		return 1;
//	}
//	for (int i = 0; i < 40; i++) {
//		printf("%x ", ps->arr[i]);
//	}
//	free(ps->arr);
//	free(ps);
//	ps = NULL;
//	return 0;
//}

//#include<stdio.h>
//#include<stdlib.h>
//int main()
//{
//	//打开文件
//	FILE* pf = fopen("data.txt", "w");
//	if (pf == NULL) {
//		perror("fopen");
//		return 1;
//	}
//	//写文件
//	for (int i = 'a'; i <= 'z'; i++)
//	{
//		fputc(i, pf);
//	}
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

#include<stdio.h>
#include<stdlib.h>
int main()
{
	//打开文件
	FILE* pf = fopen("data.txt", "r");
	if (pf == NULL) {
		perror("fopen");
		return 1;
	}
	//读文件
	int ch = 0;
	while ((ch = fgetc(pf)) != EOF)
	{
		printf("%c ", ch);
	}

	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;
}

//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
//	int ch = fgetc(stdin); //从键盘（标准输入流）上读取
//	fputc(ch, stdout); //将字符输出（写）到屏幕（标准输出流）
//
//	return 0;
//}